package main

import "fmt"

// 变量~
// 1.申明变量，然后赋值
// 2.申明变量并赋值
// 3.自动推导
// 4.直接赋值  省略类型
func main() {

	var01()
	var02()
	var03()
	var04()
}

// 申明变量： var 变量名  类型
// 然后赋值
func var01() {
	var num int
	fmt.Printf("%T %v \n", num, num)
	num = 100
	fmt.Printf("%T %v \n", num, num)

	var name string
	fmt.Printf("%T %v \n", name, name)
	name = "张三"
	fmt.Printf("%T %v \n", name, name)

	fmt.Println("-----------------------")
}

// 申明变量并赋值：var 变量名  类型= 值
func var02() {
	var num int = 99
	fmt.Printf("%T %v \n", num, num)
	num = 100
	fmt.Printf("%T %v \n", num, num)

	var name string = "李思思"
	fmt.Printf("%T %v \n", name, name)
	name = "小龙女"
	fmt.Printf("%T %v \n", name, name)
	fmt.Println("-----------------------")

}

// 自动推导
func var03() {

	num := 101
	fmt.Printf("%T %v \n", num, num)
	num = 102
	fmt.Printf("%T %v \n", num, num)

	city := "CQ"
	fmt.Printf("%T %v \n", city, city)
	city = "SHANGHAI"
	fmt.Printf("%T %v \n", city, city)

	fmt.Println("-----------------------")
}

// 直接赋值  省略类型
func var04() {
	var age = 18
	fmt.Printf("%T %v \n", age, age)
	age = 19
	fmt.Printf("%T %v \n", age, age)

	var country = "China"
	fmt.Printf("%T %v \n", country, country)
	country = "English"
	fmt.Printf("%T %v \n", country, country)
	fmt.Println("-----------------------")
}
